SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CLIE_I07]      
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : OFISIS S.A.                --*/      
/*---Sistema              : TESORERIA                  --*/      
/*---M®dulo               : Empresa                    --*/      
/*---Programa             : Grabaci®n Documentos       --*/      
/*                          Generadas x Letras         --*/      
/*                          por Canje                  --*/      
/*---       CTAS POR COBRAR            --*/        
/*---Script               : tccanj_p.sql               --*/      
/*---Nombre SP            : SP_TCCANJ_CLIE_I07         --*/      
/*---Desarrollado por     : Eduardo Vivar Pomiano      --*/      
/*---Fecha Creaci®n       : 31/01/2000                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi®n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     : Denis Villacr's            --*/      
/*---Fecha Modificaci®n   : 07/07/2001                 --*/       
/*---Detalle Modificaci®n : Select a TTTIES_DOCU para  --*/      
/*---                       el Update al CO_ESTA_DOCU  --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Modificado 2 por     : Denis Villacr's            --*/      
/*---Fecha Modificaci®n   : 14/03/2002                 --*/       
/*---Detalle Modificaci®n : Grabar estdos CNJ en TMCLIE--*/      
/*---                       y en TMDOCU_CLIE           --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 3 por     : DCH    --*/      
/*---Fecha Modificaci®n   : 15/03/2002                  --*/       
/*---Detalle Modificaci®n : Invocar a Procedure  --*/      
/*---                       SP_TTTIES_DOCU_Q01          --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 4 por     : Maju    --*/      
/*---Fecha Modificaci®n   : 19/08/2005                  --*/       
/*---Detalle Modificaci®n : Fe_Usua_Crea y Co_Usua_Crea Correctos --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TCCANJ_CLIE_I07                      --*/      
/*---Grant Execute on SP_TCCANJ_CLIE_I07 to public         --*/       
/*---SP_TCCANJ_CLIE_I07 '01', 'OFISIS', '77902', '67110', '20100073723', 'NDE', '0001-0000000030',      
 '00400024', '001', 107.2, 107.2, 107.2, 107.2, 107.2, 'ACT', '2004/08/08', 'DOL', '001', 3.32,      
 35, 2, 37.2, '019', 'FAC', '0001-0000000087', '2004/03/01' */      
/*-------------------------------------------------------*/      
 @ISCO_EMPR        TD_VC_002,       
 @ISCO_USUA_MODI   TD_VC_008_USUA,      
 @ISCO_CNTA_ADMI   TD_VC_010,      
 @ISCO_CNTA_FINA   TD_VC_010,      
 @ISCO_CLIE        TD_VC_020,      
 @ISCO_TIPO_DOCU   TD_VC_003,      
 @ISNU_CANJ   TD_VC_008,      
 @ISCO_UNID_CONC   TD_VC_003,      
 @INIM_DOCU     TD_NU_016_004,      
 @INIM_SALD_DOCU   TD_NU_016_004,      
 @INIM_SALD_CONV   TD_NU_016_004,      
 @INIM_CANJ_MCAN   TD_NU_016_004,      
 @INIM_CANJ_MDOC   TD_NU_016_004,      
 @ISCO_ESTA_ORIG   TD_VC_003,      
 @IDFE_CANJ    TD_DT_001,      
 @ISCO_MONE    TD_VC_003,      
 @ISCO_UNID_CNTB   TD_VC_003,      
 @INFA_TIPO_CAMB   NUMERIC(9,4),      
 @INIM_GAST_BANC   TD_NU_016_004,      
 @INNU_CUOT    TD_IN_001,      
 @INIM_TOTA_INTR   TD_NU_016_004,      
 @ISCO_TIOP_NDEB   TD_VC_003,      
 @ISTI_DOCU_REFE   TD_VC_003,      
 @ISNU_DOCU_REFE   TD_VC_020,      
 @IDFE_DOCU_REFE   TD_DT_001,      
 @ISTI_AUXI_GADM   TD_VC_001,      
 @ISCO_AUXI_GADM   TD_VC_020,      
 @ISTI_AUXI_GFIN   TD_VC_001,      
 @ISCO_AUXI_GFIN   TD_VC_020,      
 @ISNU_DOCU_CLIE   TD_VC_020  
 As  
Declare      
   @VNNU_SECU     TD_IN_001,      
   @VNNU_SECU_CANJ  TD_IN_001,      
   @VSCO_ESTA_DOCU  TD_VC_003,      
   @VSCO_DOCU_LETR  TD_VC_003,       
   @VSST_CIER_DOCU  TD_VC_001,      
   @VNIM_DOCU     TD_NU_016_004,      
   @VNIM_BRUT_AFEC  TD_NU_016_004,      
   @VNIM_IMPT     TD_NU_016_004,      
   @VNPC_IMPT     NUMERIC(9,4),      
   @VSST_ASTO_RESU  TD_VC_001,      
   @VSNU_SERI  TD_VC_008      
       
 Begin Tran SP_TCCANJ_CLIE_I07  
      
      
 IF @INIM_DOCU != @INIM_CANJ_MDOC      
  SET @VSST_CIER_DOCU = 'N'      
 ELSE      
  SET @VSST_CIER_DOCU = 'S'      
   
 Select @VSCO_DOCU_LETR = Null, @VSCO_ESTA_DOCU = Null      
   
 SELECT @VNPC_IMPT = PC_IMPT      
 FROM TTIMPT      
 WHERE CO_IMPT LIKE 'IG%'      
   
 SELECT @VNIM_DOCU = @INIM_TOTA_INTR + (@INIM_GAST_BANC * @INNU_CUOT)      
 SELECT @VNIM_IMPT = @VNIM_DOCU * @VNPC_IMPT / (100 + @VNPC_IMPT)      
 SELECT @VNIM_IMPT = ROUND(@VNIM_IMPT, 2)      
 SELECT @VNIM_BRUT_AFEC = @VNIM_DOCU - @VNIM_IMPT      
   
 SELECT @VNPC_IMPT = PC_IMPT      
 FROM TTIMPT      
 WHERE CO_IMPT LIKE 'IG%'     
   
 SELECT @VSST_ASTO_RESU = T2.ST_ASTO_RESU      
 FROM TDTIPO_OPER T1, TMOPRC_RESU T2      
 WHERE T1.CO_EMPR = @ISCO_EMPR      
 AND T1.CO_TIPO_OPER = @ISCO_TIOP_NDEB      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB      
   
 Select @VSNU_SERI = Substring(@ISNU_DOCU_CLIE, 1, Patindex('%-%', @ISNU_DOCU_CLIE)-1)      
   
 /* Genero el œltimo correlativo para el documento Nota de D'bito */      
 Exec SP_TTULTI_CORR_I01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_TIPO_DOCU, @VSNU_SERI, @ISNU_DOCU_CLIE      
   
 Exec SP_TMDOCU_CLIE_I01  @ISCO_EMPR,  @ISCO_USUA_MODI, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, @ISCO_CLIE,      
  '', @ISCO_MONE, @ISCO_TIOP_NDEB, @ISCO_UNID_CONC, @IDFE_CANJ,      
  @ISCO_UNID_CNTB, @IDFE_CANJ, @IDFE_CANJ, NULL, @INFA_TIPO_CAMB, @VNIM_BRUT_AFEC,      
  0, 0, 0, 0,      
  'N', 'N', 'N', 'N',       
  'N', 'N', 'N', 'N',       
  'N', 'N', 'N', 'N',       
  'N', 0, 0, 0,      
  0, 'IGV', @VNPC_IMPT, @VNIM_IMPT, NULL,      
  0, 0 , '', 0, 0,      
  @VNIM_DOCU, 0, @ISTI_DOCU_REFE, @ISNU_DOCU_REFE,      
  @IDFE_DOCU_REFE,NULL, NULL, NULL,      
  NULL, NULL, @VSST_ASTO_RESU      
   
 If Rtrim(@ISTI_AUXI_GADM) = ''      
  Select @ISTI_AUXI_GADM = NULL      
 If Rtrim(@ISCO_AUXI_GADM) = ''      
  Select @ISCO_AUXI_GADM = NULL      
 If Rtrim(@ISTI_AUXI_GFIN) = ''      
  Select @ISTI_AUXI_GFIN = NULL      
 If Rtrim(@ISCO_AUXI_GFIN) = ''      
  Select @ISCO_AUXI_GFIN = NULL      
   
   
   
 Insert Into TDDISC_CCOS (CO_EMPR, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, NU_CORR, CO_CENT_COST,       
 CO_CNTA_EMPR, ST_DIST, PO_DIST, IM_DIST, CO_ORDE_SERV, TI_AUXI_EMPR, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI) 
     
 Values  (@ISCO_EMPR, @ISCO_CLIE, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, 1, @ISCO_AUXI_GFIN,      
 @ISCO_CNTA_FINA, 'M', Round(( (@VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT)) /@VNIM_BRUT_AFEC)*100,2),       
 @VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT),      
 NULL, @ISTI_AUXI_GFIN, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())      
   
 If @@error <> 0      
 Begin      
  Rollback tran SP_TCCANJ_CLIE_I07  
  Return      
 End       
   
 Insert Into TDDISC_CCOS (CO_EMPR , CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, NU_CORR, CO_CENT_COST,       
 CO_CNTA_EMPR, ST_DIST, PO_DIST, IM_DIST, CO_ORDE_SERV, TI_AUXI_EMPR, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI) 
     
 Values  (@ISCO_EMPR, @ISCO_CLIE, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, 2, @ISCO_AUXI_GADM,      
 @ISCO_CNTA_ADMI, 'M', 100 - Round(( (@VNIM_BRUT_AFEC - (@INIM_GAST_BANC * @INNU_CUOT)) /@VNIM_BRUT_AFEC)*100,2),      
 @INIM_GAST_BANC * @INNU_CUOT,      
 NULL, @ISTI_AUXI_GADM, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())      
   
 If @@error <> 0      
 Begin      
  Rollback tran SP_TCCANJ_CLIE_I07  
  Return      
 End        
   
   
 Select  @VNNU_SECU_CANJ = Max(NU_SECU_CANJ) + 1      
 From  TDCANJ_CLIE      
 Where  CO_EMPR = @ISCO_EMPR      
 AND CO_UNID_CONC = @ISCO_UNID_CONC      
 AND CO_CLIE = @ISCO_CLIE      
 AND NU_CANJ = @ISNU_CANJ      
 AND FE_CANJ = @IDFE_CANJ      
   
   
 Insert Into  TDCANJ_CLIE (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ, NU_ORDE_LETR,       
 NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, IM_DOCU, IM_SALD_DOCU,       
 IM_SALD_CONV, IM_CANJ_MCAN, IM_CANJ_MDOC, ST_CIER_DOCU,       
 CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ESTA_ORIG, ST_NDEB_AUTO)      
 Values ( @ISCO_EMPR, @ISCO_UNID_CONC, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @VNNU_SECU_CANJ, NULL,      
 NULL, @ISCO_TIPO_DOCU, @ISNU_DOCU_CLIE, @INIM_DOCU, @INIM_SALD_DOCU,       
 @INIM_SALD_CONV, @INIM_CANJ_MCAN, @INIM_CANJ_MDOC, @VSST_CIER_DOCU,       
 @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_ESTA_ORIG, 'S' )      
   
 If @@error <> 0      
 Begin      
  Rollback tran SP_TCCANJ_CLIE_I07  
  Return      
 End          
   
 Exec SP_TTDOCU_CNTB_Q01 6, @VSCO_DOCU_LETR OutPut      
   
 Exec SP_TTTIES_DOCU_Q01 3, @VSCO_ESTA_DOCU OutPut      
   
 --   IF @INIM_SALD_DOCU > @INIM_CANJ_MDOC       
 IF @INIM_SALD_DOCU > @INIM_CANJ_MCAN      
 Begin      
  SELECT @VSCO_ESTA_DOCU = @ISCO_ESTA_ORIG      
  SELECT @VSST_CIER_DOCU = 'N'      
 End       
 Else      
  Select @VSST_CIER_DOCU = 'S'      
   
   
 If @VSCO_DOCU_LETR = @ISCO_TIPO_DOCU       
 Begin      
   
  Select  @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1      
  From    TDKARD_DOCU      
  Where   CO_EMPR = @ISCO_EMPR      
   
  Insert Into TDKARD_DOCU (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_ESTA_ACTU,      
  CO_ESTA_DOCU, NU_CORR_MODI, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI,  FE_USUA_MODI )      
  Values ( @ISCO_EMPR, @VNNU_SECU, @VSCO_DOCU_LETR, @ISNU_DOCU_CLIE, @ISCO_CLIE,      
  @VSCO_ESTA_DOCU, @ISCO_ESTA_ORIG, @VNNU_SECU, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE() )        
    
  If @@error <> 0      
  Begin      
   Rollback tran      
   Return      
  End          
    
  Update  TMLETR_CLIE      
  Set  CO_ESTA_DOCU = @VSCO_ESTA_DOCU,       
  NU_CANJ = @ISNU_CANJ,      
  IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,      
  CO_USUA_MODI = @ISCO_USUA_MODI,       
  FE_USUA_MODI = Getdate()      
  Where  CO_EMPR = @ISCO_EMPR       
  And NU_LETR_CLIE = @ISNU_DOCU_CLIE          
 End        
 Else      
  Update  TMDOCU_CLIE       
  Set  CO_ESTA_DOCU = @VSCO_ESTA_DOCU,       
  NU_CANJ = @ISNU_CANJ,      
  IM_PAGA = IM_PAGA + @INIM_CANJ_MDOC,      
  CO_USUA_MODI = @ISCO_USUA_MODI,       
  FE_USUA_MODI = Getdate()      
  Where  CO_EMPR = @ISCO_EMPR       
  And CO_TIPO_DOCU = @ISCO_TIPO_DOCU       
  And NU_DOCU_CLIE = @ISNU_DOCU_CLIE      
    
    
  If @@error <> 0      
  Begin      
   Rollback tran SP_TCCANJ_CLIE_I07  
   Return      
  End          
   
 Select @ISNU_DOCU_CLIE      
      
Commit Tran      
      
/*------------------------- Fin ------------------------------*/



GO
